testgtk.c: native file chooser filter changes
authorTom Schoonjans <Tom.Schoonjans@diamond.ac.uk>
Thu, 13 Jul 2017 19:03:55 +0000 (20:03 +0100)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 18 Jul 2017 17:48:13 +0000 (13:48 -0400)
Set the filter before showing the dialog
Afterwards, fetch the last active filter and display its name.

https://bugzilla.gnome.org/show_bug.cgi?id=784723

tests/testgtk.c

index 32a831a476dfdb15a9b3c3cecaa6b51ea553588b..9508f85e0d99a4411a431485b6bfb2a63657c6a7 100644 (file)
@@ -9334,8 +9334,11 @@ native_response (GtkNativeDialog *self,
   GSList *uris, *l;
   GString *s;
   char *response;
+  GtkFileFilter *filter;
+  GSList *filter_list = gtk_file_chooser_list_filters (GTK_FILE_CHOOSER (self));
 
   uris = gtk_file_chooser_get_uris (GTK_FILE_CHOOSER (self));
+  filter = gtk_file_chooser_get_filter (GTK_FILE_CHOOSER (self));
   s = g_string_new ("");
   for (l = uris; l != NULL; l = l->next)
     {
@@ -9362,12 +9365,23 @@ native_response (GtkNativeDialog *self,
       break;
     }
 
-  res = g_strdup_printf ("Response #%d: %s\n"
-                         "Files:\n"
-                         "%s",
-                         ++count,
-                         response,
-                         s->str);
+  if (filter)
+    res = g_strdup_printf ("Response #%d: %s\n"
+                           "Filter: %s\n"
+                           "Files:\n"
+                           "%s",
+                           ++count,
+                           response,
+                           gtk_file_filter_get_name (filter),
+                           s->str);
+  else
+    res = g_strdup_printf ("Response #%d: %s\n"
+                           "NO Filter\n"
+                           "Files:\n"
+                           "%s",
+                           ++count,
+                           response,
+                           s->str);
   gtk_label_set_text (GTK_LABEL (label), res);
   g_free (response);
   g_string_free (s, TRUE);
@@ -9535,6 +9549,7 @@ native_filter_changed (GtkWidget *combo,
       gtk_file_filter_set_name (filter, "Images");
       gtk_file_filter_add_pixbuf_formats (filter);
       gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (native), filter);
+      gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (native), filter);
 
       filter = gtk_file_filter_new ();
       gtk_file_filter_set_name (filter, "All");
@@ -9552,6 +9567,7 @@ native_filter_changed (GtkWidget *combo,
       gtk_file_filter_set_name (filter, "All");
       gtk_file_filter_add_pattern (filter, "*");
       gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (native), filter);
+      gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (native), filter);
       break;
     }
 }